﻿using System;
using System.Collections.Generic;
using System.Windows.Controls;
using System.Linq;
using System.Windows;

namespace QuanLyDuocPham.Controllers.QuanLyHeThong.DanhMuc
{
    class CALAMVIEC_Control : IDisposable
    {

        DuocPhamDataContext db = new DuocPhamDataContext(staticClass.Conn);
        public void Dispose()
        {
            if (db != null)
            {
                db.Dispose();
                db = null;
            }
        }
        public void loadComboBox(ComboBox cmb)
        {

            cmb.Items.Clear();
            var types = db.CALAMVIEC_Get_List();

            foreach (var t in types)
            {
                cmb.Items.Add(t);
            }
            cmb.SelectedValuePath = "MA_CA";
            cmb.IsTextSearchEnabled = true;
            cmb.IsTextSearchCaseSensitive = false;
            cmb.IsEditable = true;
            CALAMVIEC_Get_ListResult temp = new CALAMVIEC_Get_ListResult();
            temp.MA_CA = "...";

            temp.DIEN_GIAI = "Thêm mới";
            cmb.Items.Add(temp);
        }

        public string loadID_moi()
        {
            string ID = "";

            int rowcount = db.CALAMVIEC_Get_List().Count();
            if (rowcount == 0)
            {
                ID = "CA001";
            }
            else
            {
                for (int i = 1; i <= (rowcount + 1); i++)

                {
                    string IDtam = "CA";
                    for (int j = 0; j < (3 - i.ToString().Length); j++)
                        IDtam = IDtam + "0";
                    IDtam = IDtam + i;
                    Boolean kq = true;
                    var data = db.CALAMVIEC_Get_List();

                    foreach (var t in data)
                    {

                        if (t.MA_CA.Trim() == IDtam.Trim())

                            kq = false;
                    }
                    if (kq == true)
                    {
                        ID = IDtam;
                        break;
                    }
                }

            }
            return ID;
        }

        public void addData(string ma_ca, TextBox txtDien_Giai, ComboBox cmbGio_TGBD, ComboBox cmbPhut_TGBD, ComboBox cmbGio_TGKT, ComboBox cmbPhut_TGKT)
        {
            if (validateData(txtDien_Giai, cmbGio_TGBD,  cmbPhut_TGBD,  cmbGio_TGKT, cmbPhut_TGKT) == false)
                MessageBox.Show("Chưa nhập đủ thông tin!");
            else
            {

                db.CALAMVIEC_Insert(ma_ca, txtDien_Giai.Text, cmbGio_TGBD.Text + ":" + cmbPhut_TGBD.Text, cmbGio_TGKT.Text + ":" + cmbPhut_TGKT.Text);
                MessageBox.Show("Đã thêm thành công");
            }
        }
        private bool validateData( TextBox txtDien_Giai, ComboBox cmbGio_TGBD, ComboBox cmbPhut_TGBD, ComboBox cmbGio_TGKT, ComboBox cmbPhut_TGKT)
        {
            if (txtDien_Giai.Text.Trim() == "" || cmbGio_TGBD.SelectedItem == null || cmbGio_TGKT.SelectedItem == null || cmbPhut_TGBD.SelectedItem == null || cmbPhut_TGKT.SelectedItem == null)
            {
                return false;
            }
            return true;
        }

        public void loadData(ListView List)
        {
            List.Items.Clear();

            var list = db.CALAMVIEC_Get_List();

            foreach (var t in list)
            {
                List.Items.Add(t);
            }
            
        }

        public void updateData(string ma_ca, TextBox txtDien_Giai, ComboBox cmbGio_TGBD, ComboBox cmbPhut_TGBD, ComboBox cmbGio_TGKT, ComboBox cmbPhut_TGKT)
        {
            if (validateData(txtDien_Giai, cmbGio_TGBD, cmbPhut_TGBD, cmbGio_TGKT, cmbPhut_TGKT) == false)
                MessageBox.Show("Chưa nhập đủ thông tin!");
            else
            {

                db.CALAMVIEC_Update(ma_ca, ma_ca, txtDien_Giai.Text, cmbGio_TGBD.Text + ":" + cmbPhut_TGBD.Text, cmbGio_TGKT.Text + ":" + cmbPhut_TGKT.Text);
                MessageBox.Show("Đã cập nhật!");
            }
        }

        public string deleteData(string ID_Delete, string error)
        {
            error = "";
            if (db.CA_CT_GetByMaCa(ID_Delete).Count() > 0)
                error = "Không thể xóa";
            else
            {
                db.CALAMVIEC_Delete(ID_Delete);
                error = "Xóa thành công!";
            }
            return error;

        }

        public void loadForm_Edit(string ID_Edit,  TextBox txtDien_Giai, ComboBox cmbGio_TGBD, ComboBox cmbPhut_TGBD, ComboBox cmbGio_TGKT, ComboBox cmbPhut_TGKT)
        {

            var sl = (CALAMVIEC_GetByMaCaResult)db.CALAMVIEC_GetByMaCa(ID_Edit).Single();


            
            txtDien_Giai.Text = sl.DIEN_GIAI;
            for (int i = 0; i < 24; i++)
            {
                if (i < 10)
                {
                    cmbGio_TGKT.Items.Add("0" + i.ToString());
                    cmbGio_TGBD.Items.Add("0" + i.ToString());
                }
                else
                {
                    cmbGio_TGBD.Items.Add(i.ToString());
                    cmbGio_TGKT.Items.Add(i.ToString());
                }
            }
            
            cmbGio_TGBD.SelectedIndex = Int32.Parse(sl.TGBD.Substring(0,2));
            
            cmbGio_TGKT.SelectedIndex = Int32.Parse(sl.TGKT.Substring(0,2));
            for (int i = 0; i < 59; i++)
            {
                if (i < 10)
                {
                    cmbPhut_TGBD.Items.Add("0" + i.ToString());
                    cmbPhut_TGKT.Items.Add("0" + i.ToString());
                }
                else
                {
                    cmbPhut_TGBD.Items.Add(i.ToString());
                    cmbPhut_TGKT.Items.Add(i.ToString());
                }
            }
            cmbPhut_TGBD.SelectedIndex = Int32.Parse(sl.TGBD.Substring(3, 2));
            cmbPhut_TGKT.SelectedIndex = Int32.Parse(sl.TGKT.Substring(3, 2));
        }
    }
}
